﻿using Command.CommunityToolkit.Attributes;
using Command.CommunityToolkit.Helpers;
using Command.CommunityToolkit.Services;

namespace Command.CommunityToolkit.Commands.Impl;

[Command(("help"))]
public class HelpCommand: CommandBase
{
    public HelpCommand(object args, IQualityControl qualityControl) : base(args, qualityControl)
    {
    }
    public override string Summary() => "展示命令帮助说明";

    public override string Description() =>
        @"
EzQC 是一个命令行工具对POI证书安装进行质量控制
使用方法：

    ezqc <command> [argument]

现支持如下命令:

                直接运行程序进行默认流程证书激活认证；
    drive       验证指定盘符名称下的证书压缩文件；
    volume      验证指定卷标名称下的证书压缩文件；
    directory   验证指定文件夹下的证书压缩文件；
    license     验证指定证书；
    log         输出当天日志；
   
使用 ”ezqc help <command>“ 查看更多命令相关信息。
";

    public override string[] GetLicenses()
    {
        return new string[]{};
    }

    public override bool Excute()
    {
        var serviceProvider = ServiceProviderHelper.GetInstance().ServiceProvider;
        if (serviceProvider != null)
        {
            var factory = serviceProvider.GetService<CommandFactory>();
            var command = factory?.BuildCommand(new[] { Arg.ToString()??"", "" });
            Console.WriteLine(Equals(null, command) ? Description() : command.Description());
            return true;
        }
        return false;
    }


}